iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 5
1

繼續指令囉!
好想結束指令的部分...

指令們

雖然說是指令,但是今天主體其實不是指令,而是很多的重導I/O

> & >>

昨天在cat的部分有提到>和>>
說好今天要講所以我來了~
他們兩個都可以寫入檔案,差別在於一個>會覆蓋原本的檔案而兩個的>>會把想要加進去的東西加在檔案後面
再強調一次,>會覆蓋原本的檔案,因為本人就是苦主QQ
這邊舉個例子順便再提一個新的指令:echo(註1)
用法:
echo "[test]" [> filename]
這樣就會把test這個文字寫入你想要放的檔案裡(昨天的cat是把檔案寫入,今天的echo是把文字寫入)

這時候你可能會有一個問題,那如果我是想要把指令的結果寫入檔案,那該怎麼做呢?
嗯...這時候不是用cat也不是用echo,這時候什麼東西都不用,只要打你要的指令再直接加上>>>跟檔案名稱就可以了
像是:
ls > test.txt
這樣就可以把ls這個指令跑出來的東西弄到test.txt裡面了

more/less

more跟less的功能是在檔案非常長的時候,可以分頁瀏覽,像這樣
https://ithelp.ithome.com.tw/upload/images/20190918/20120263gqgGPn4DME.png
他們是幾乎一樣的,但是less比較快,因為他不會把整個檔案讀出來再給你看,而是讀一部分先給你看。
用法:
more [file name]
less [file name]
然後他就會很開心的幫你分頁瀏覽,你就會看得很舒服。
看完要離開的時候,按一下q就好了!

head/tail

顧名思義,他看的就是檔案的開頭和結尾
有時候會用到,畢竟你可能知道你要看的東西在頭或尾然後又不想用上面提的more跟less
用法:
head [file name]
tail [file name]
但是,我真的很少用XD(所以篇幅超少)

wc

再來是wc(不是廁所喔)
它的功用是看檔案的行數、字數、byte數
用法:
wc [filename]
然後他會出現這樣
https://ithelp.ithome.com.tw/upload/images/20190918/20120263s1BdhPETjj.png
由左到右就是行數、字數、byte數、檔名,真是一目了然。

grep

再來要說的是grep
他是一個很好用的東西,功能是字串搜尋。
用法:
cat [file] | grep [test]
這樣子他就會把在file裡面符合test這個字串的句子列出來

|(pipe)

然後你想必也看到剛剛grep那有個|吧,他是pipe(管道),也是今天的壓軸
顧名思義,它的用途是把前面的那個程式產生的東西傳給後面的程式。
他的用法是這樣的:
[command1] | [command2]
(是不是超難懂XD)
他會把command1的結果"傳送給"command2做處理
舉幾個例子:
cat httpd.conf | grep php(把httpd.conf這個檔案打開然後傳給grep讓他找裡面有php的句子)
cat rc.conf | less(打開rc.conf然後傳送給less讓我們分頁瀏覽)
ls /etc | grep hosts(看/etc這個目錄下有甚麼傳給grep讓他找檔名有hosts的檔案)
這樣應該比較瞭解了吧~

今日小結

又一天了呢!
今天的東西比較複雜了一點,尤其是pipe的部分。
但是grep建議一定要學起來,因為會很常用。其他的,就看自身能力吧~

註一
echo還有一個功能是叫,對就是叫。
用法:
echo [something]
然後他就會輸出something,對就這樣,通常用不到除非是在寫shell script


上一篇
【Day4】基本指令們(1)
下一篇
【Day6】基本指令們(3)
系列文
30天學會用FreeBSD & Apache架網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言